using System;
using System.Collections.Generic;
using System.Text;
using System.Windows.Forms;
using Sandia.MVCFramework.View;

namespace Sandia.MVCFramework.ViewManager
{
    /// <summary>
    /// An interface that defines general functionality for the a view 
    /// manager's state. The state will be used to allow the controller to save
    /// and load the current state of the view manager (e.g. which views are
    /// visible, etc.).
    /// </summary>
    public interface IViewManagerState
    {
        /// <summary>
        /// A list of all the views in this view manager.
        /// </summary>
        IList<IView> Views { get; }

        /// <summary>
        /// The main main layout for the view manager.
        /// </summary>
        ILayoutNode MainLayout { get; }

        /// <summary>
        /// The layout for tool views for the view manager.
        /// </summary>
        ILayoutNode ToolLayout { get; }

        /// <summary>
        /// The percent that the main windows should take on the screen.
        /// </summary>
        int MainHeight { get; set; }
    }
}
